package com.audaque.springboot.foshanupload.web.docdemo.model.req;

import com.audaque.springboot.foshanupload.core.model.qo.page.Page;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 行为告警实例
 * </p>
 *
 * @author zgb
 * @since 2023-04-26
 */
@Data
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "AlarmInstance查询参数", description = "行为告警实例查询参数")
public class AlarmInstanceReq extends Page implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "OA处理状态 1：待派发；2：待处理，3：已处理，4：已作废")
    private Integer oaHandleStatus;


    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


    @ApiModelProperty(value = "行为id 冗余字段 连表查询规则分类名称时方便")
    private Integer behaviourRuleClassifyId;


    @ApiModelProperty(value = "事件时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate eventTime;


    @ApiModelProperty(value = "操作用户客户端ip关键字")
    private String optIpKeyword;


    @ApiModelProperty(value = "操作用户名称关键字")
    private String optUserNameKeyword;

    @ApiModelProperty(value = "操作用户所属部门名称关键字")
    private String userDeptNameKeyword;

    @ApiModelProperty(value = "分类id 多个逗号分隔")
    private List<String> dataClassifyIds = new ArrayList<>();

    @ApiModelProperty(value = "分级id 多个逗号分隔")
    private List<String> dataGradeIds = new ArrayList<>();

    @ApiModelProperty(value = "标签id 多个逗号分隔")
    private List<String> dataLabelIds = new ArrayList<>();


    @ApiModelProperty(value = "业主id")
    private String dataOwnerDeptId;


    @ApiModelProperty(value = "表名关键字")
    private String optTableNameKeyword;

    @ApiModelProperty(value = "表名查询类型,1:绝对，2：模糊")
    private Integer optTableNameQueryType;

    //######################################
    //分类字符串
    private String dataClassifyIdStr;
    //分级字符串
    private String dataGradeIdStr;
    //标签字符串
    private String dataLabelIdStr;
}
